import UIKit

/**
    B站：https://www.bilibili.com/video/BV144411C7Gg?p=38

    第38课 延迟属性 lazy
 */

class Data {
    init() {
        print("Data init")
    }
    
    func play() {
        print("Data play")
    }
}

class Test {
    var data: Data = Data()
    
    init() {
        print("Test init")
    }
}

/**
 Data init
 Test init
 */
var test = Test()
// 如果当前业务不使用 test.data.play()，Data的初始化 是不是多余了，内存无用损耗




// 现在 如果多个不用的属性，或者某个业务不用某个属性
// 就需要 延迟属性了

class Test2 {
    lazy var data: Data = Data()
    
    init() {
        print("Test2 init")
    }
}
var t2 = Test2()
//t2.data.play() // 可切换方便 被注释掉了
